package com.sinog.basic.mapper.common;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sinog.basic.entity.AuthUser;
import com.sinog.core.domain.Department;
import com.sinog.core.domain.UserInterFaceEntity;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;

/**
 * @desc basic通用mapper
 * @author -
 * @date -
 */
public interface CommonBasicMapper extends BaseMapper<Department> {

    /**
     * 获取角色对应的机构级别
     * @param loginUserLevel loginUserLevel
     * @return List<Map < String,String>>
     */
    List<Map<String,String>> getOrgLevelList(@Param("loginUserLevel") String loginUserLevel);

    /**
     * 系统管理 - 用户管理 - 用户管理 - 查询该departId是否在用户机构缓存表存在
     * @param departId departId
     * @return Integer
     */
    Integer existDepartId(String departId);

    /**
     * 系统管理 - 用户管理 - 用户管理 - 添加子机构缓存表
     * @param departId departId
     * @return int
     */
    int insertCache(String departId);

    /**
     * 系统管理 - 用户管理 - 用户管理 - 根据账号查询
     * @param account account
     * @return UserInterFaceEntity
     */
    UserInterFaceEntity getInfoByAccount(String account);

    /**
     * 系统管理 - 用户管理 - 用户管理 - 根据账号重置密码
     * @param account account
     * @param password password
     * @return int
     */
    int resetPwd(String account,String password);

    /**
     * 系统管理 - 用户管理 - 用户管理 - 根据ID更新子机构缓存表
     * @param id id
     * @param childid childid
     * @return int
     */
    int updateCacheById(String id,String childid);

    /**
     * 系统管理 - 用户管理 - 用户管理 - 插入接口表用户数据
     * @param userInterface userInterface
     */
    void insertTbsysUserInface(UserInterFaceEntity userInterface);

    /**
     * 系统管理 - 用户管理 - 用户管理 - 插入用户密码表数据
     * @param sfAuthUser sfAuthUser
     */
    void insertAuthUser(AuthUser sfAuthUser);

    /**
     * 根据ID批量删除tbsys_department_child_cache
     * @param array array
     * @return int
     */
    int deleteCacheByIds(String[] array);

    /**
     * 查询tbsys_department_child_cache列表
     * @param list list
     * @return List<Map < String,String>>
     */
    List<Map<String,String>> selectCacheByIds(List<String> list);

    /**
     * 根据ID更新子机构缓存表
     * @param id id
     * @param childid childid
     * @return int
     */
    int updateCacheByIdDepartment(String id,String childid);

    /**
     * 获取下级机构类型下拉
     * @param deptId deptId
     * @return List<Map < String,String>>
     */
    List<Map<String,String>> getLevelCombox(@Param("deptId") String deptId);

    /**
     * 根据ID删除azbj_rs
     * @param id id
     * @return int
     */
    int deleteAzbjRs(@Param("id") String id);

    /**
     * 插入azbj_rs表数据
     * @param id id
     * @param item item
     * @return int
     */
    int saveAzbjRs(@Param("id") String id,@Param("item") String item);

    /**
     * 添加子机构缓存表
     * @param id id
     * @return int
     */
    int insertCacheDepartment(String id);
}